planck history

monday, 13 november 2017

was originally part of the supposedly last write-up on this site’s particular Planck keyboard layout. The annotations grew, then became long enough to warrant being separated out into its own update page here!

In chronological order, a long list of tweaks (whose number was thought to be an indicator of approaching completion—obviously not)! As only the current layouts are illustrated here, it will be somewhat challenging to picture the many keymap transitions from the ergo wide layout starting point.

Audio capability was eventually disabled in favour of keyboard mouse controls due to on board memory constraints. Future Planck PCB’s may utilize more current processors with increased RAM. For now, functionality literally trumps bells and whistles.

The list itself should provide a sense of the iterative process involved in the refinement of this particular Planck layout..

  • the centre column pairings of Shift-GUI, Ctrl-GUI and Shift-Alt, Ctrl-Alt changed to Ctrl-Alt, Ctrl-GUI and Shift-Alt, Shift-GUI effectively aligning Alt and GUI modifiers in their own columns, a grouping which better suits the needs of the window manager work flow
  • the number layer Symbol Layer key is moved left one column position and the symbol layer Regex Layer key is similarly moved right one column position and are now toggled with the ring fingers which feel less cramped than their former middle finger assignment
  • the Caps Lock key is now a one shot modifier Shift key (which is double tapped to toggle the Caps Lock), completing the set of one shot modifiers
  • the Function keys have been remapped to match the numeric keypad layout of the number layer, naturally
  • the double tap key pairs of the number layer have been normalized with the symbol layer by swapping their key positions with the outer column modifier keys (used mainly for window manager desktop actions) which, while looking odd, retain a comfortable pinkie-index finger roll
  • the number layer column of one shot modifier keys has been changed to dedicated Alt modifier chords in optimal row positions (for window manager desktop actions)
  • the number layer Symbol Layer and symbol layer Regex Layer keys are now positioned in their most obvious location (how was any other location considered?)—the middle finger home row!—with the Right Angle key now defined as a double tap key
  • added a Shift Navigation cluster layer to the left Shift Layer, completing the quadruplet (Ctrl, Meta, Alt, Shift) of single modifier navigation chords—the thumb Shift avoids the reach required for the centre column one shot modifier Shift key
  • added the same Shift Navigation cluster layer to the Symbol Layer including switching between shifted and unshifted navigation codes by simply releasing/pressing the Left Shift / Pipe key while the Left (cursor) / Symbol Layer key is held down, whilst allowing rolling between the Shift and Symbol layers seamlessly without the need to lift both thumbs off their respective keys to switch layers (easier to appreciate in use than explain!)
  • dropped the Plover Layer (and other test code) to accommodate the increased size of the latest code base and available flash RAM
  • recovered sufficient RAM space to re-add the Plover Layer by dropping the dedicated Macro Layer (which defined only a single key, the Dynamic Macro key) and refactoring the keymap code—the popular Planck Tri-Layer Toggle (using the Number and Symbol Layer keys together) is now dropped in favour of a single Backspace / Macro key (labeled Adjust) to raise the Adjustment Layer and the Dynamic Macro key
  • added the complement of home row one shot modifiers to the Function Key and Shift Navigation cluster layers
  • added the obvious (but overlooked) Shift-Tab to the right Shift Layer
  • added the complement of home row one shot modifiers to the Number Layer (shifting the Symbol Overlay Layer key to the pinkie), moving the Angle Brackets down one row
  • moved the Angle Brackets down one row on the Symbol Layer, and shifted the Regex Overlay Layer key to the pinkie to mirror the Number Layer
  • swapped the Dot and Backslash keys on the Symbol Layer to rolling finger positions
  • added the Angle Brackets to the Adjust Layer in their familiar shift positions (Comma and Dot keys), mirroring the Number and Symbol Layers
  • redefined the Number Layer as a numeric keypad with basic mathematical operators—calculator mode being somewhat more useful than straight hexadecimal input—and assigned the Hexadecimal characters to the Hex Symbol Overlay Layer (whose index/pinkie finger locations still look somewhat odd but remain easy to remember) along with the Backslash, Pipe and Tilde keys
  • not a layout change, but fixed the frequent new sentence (left thumb tap plus down) Space plus Shift sequence which the process_user_function firmware latency (as coded) can fail to recognize during rapid touch typing—auto-repeating Space now requires left thumb double tap plus down, and Modifier Space chords are limited to one shot modifier key plus Space
  • dropped the Dynamic Macro Layer to reduce reported flash memory size below 100%—macro recording was being truncated even with reduced buffer allocation
  • redesigned the Number Layer and its associated Hexadecimal Overlay Layer layouts, moving the A B C hexadecimal keys to the Number Layer and D E F keys in their overlay position, so the Hexadecimal Overlay Layer and Regex Overlay Layer of the Symbol Layer can be defined as a single layer (freeing up precious bytes of flash memory space)
  • in lieu of dynamic macro strings, added a compile time double tap macro string to the Function Key Layer (which is flash persistent)—one is good enough for now
  • fixed the one shot modifier restriction side effect of the tap dance Space Shift sequence to recognize all Modifier Space chords
  • corrected similar latency issue with rapid new paragraph (right thumb tap plus down) Enter plus Shift key sequence—with double tap plus down to produce auto-repeating Enter
  • squeezed in QWERTY layout and associated left/right Shift Layers (with similar symbol mappings for non-alpha keys)
  • left symbol (pair) “double tap” keys can now be triple tapped to place the cursor inside the enclosing right character
  • the Adjust Layer now omits all unused QMK firmware settings, relocating the remaining firmware settings to the left hand side and moving the custom macro keys to the right (with corresponding adjustments to the Function Key and Plover layers)
  • lining up the centre column modifiers with the one shot modifiers of the Numberic Keypad Layer, swapping the home row Ctrl-Alt and Ctrl-GUI keys with the top row Shift keys of the centre column
  • completed the available triple tap symbol key pairs
  • Colemak layout tweaking, remapping the Z, V and X keys
  • more Colemak layout tweaking, swapping the FC keys
  • added one shot to double tap Space and Enter—a significant feature IMO
  • minor key mapping change to the Number Layer Overlay relocating the Backslash and Bar keys
  • added one shot to Number Layer to define one shot symbols and relocate symbol pairs and hexadecimal characters to separate layer
  • added triple tap Tilde, triple tap (double tap plus down) to auto-repeat, double tap to insert common UNIX home directory “~/”
  • yet more Colemak layout tweaking, swapping the PG keys
  • disabled all firmware extensions in Makefile except for NKRO and tap dance, freeing up 30% of available memory space!
  • a few Haskell language shortcuts, adding <-, -> and :: double taps to the Adjust and Shift Layers
  • add Vim G to Number Layer Overlay
  • altered the navigation cluster layout of the Symbol Navigation Layer, relocating the PgUp and PgDn keys a la GuiFn, and the Angle Brackets to their normal shift positions
  • the Shift Navigation Layer adds the Shift modifier (versus defaulting to shifted keycodes) providing greater modifier chord flexibility
  • align left hand home row modifier keys of Number, Symbol and Function Key layers to default layout order and assign overlay layer toggling to index finger—no more pinkie finger responsibilities (almost)!
  • minor change with Number Layer Space and Backslash now mirroring left hand positions of Default and Symbol Layers
  • delete redundant Asterisk on Number Overlay Layer and add Question Mark (with vertical alignment of this key and Tilde to their shift layer assignments)
  • revert to pseudo Tri-Layer toggle of the Adjust Layer using the Number and Symbol Layer keys together, freeing up the Adjust layer toggle key
  • add home row modifiers to the Symbol Navigation Layer, eliminating the previous overlay layer and its associated double finger activation (by implementing modifier toggle function for shifted keycodes)
  • add Edit Layer common keyboard shortcuts, restoring the ZXCV cluster (but on the home row!) and terminal key chord equivalents in optimal finger locations
  • add Mouse Action Layer overlay to Symbol Navigation and Shift Overlay layers with rolling layer alternation (to seamlessly switch between keyboard cursor/page and mouse pointer/scroll actions)
  • align Number Layer hexadecimal overlay with index, middle and ring fingers, with mirroring of Symbol Layer bracket pairs
  • add Control codes to the Edit Layer (in search of a useful set!)
  • map Adjust Layer keys to NOP locations of Mouse Action Layer to block accidental settings (from adjacent layer activation keys)
  • refine Symbol Overlay Layer layout (taking into consideration the Number Overlay Layer and regex lookahead/lookbehind fingering combinations)
  • optimized index finger layout PB and MK swaps
  • add Brackets Overlay Layer to Function Key Layer
  • Planck build script directives now only define a single base layer— Colemax, Mod-DH or QWERTY—removing alternate keyboard layouts from the Adjust Layer (due to LT macro 16 layer limit)
  • add BEAKL layout
  • assign the bracket pair double tap action to the index finger (which delegates the closing brackets for the left hand on the Symbol Layer!)
  • flatten the Number Layer by splitting the hex and decimal characters between the left and right hands (eliminating the separate hex overlay layer)
  • drop redundant Brackets Overlay Layer from Function Key Layer, and refactor Number and Symbol Layer overlay symbol sets
  • add Programming Shift Layers option to BEAKL layout
  • move 0 to thumb key of Number Layer
  • add CapsLock to Right Shift Layer thumb row
  • adjust Symbol Layer Overlay Angle Brackets to match Programming Shift Layers home row position
  • add triple tap functionality to Symbol Layer Overlay Angle Brackets
  • remap home block symbol clusters of Beakl shift layers, optimizing the Equal comparison bigrams
  • expand home block symbol clusters (and eliminate ring finger usage) and drop the Number and Symbol Layer overlays
  • add mash up BEAKL 8 and BEAKL 10 (Planck done to Planck redux!)
  • add Shift Toggle to BEAKL A to allow left/right handed Shift Navigation Layer access (purely a Vim workflow convenience)
  • adopt BEAKL 8 Ian Mod
  • swap X Z keys for ring finger strike of corner Q X keys
  • swap J Z keys to favour (subjective) left hand Z and J rolls (with minor improvement in English prose keyboard layout test)
  • add Slash and Dot to home block symbol clusters for Haskell /=, HTML </ and regex .* operators
  • move Dollar and Caret of home block symbol clusters from index to ring fingers for better rolls
  • swap Dot and Dollar of right hand home block symbol cluster for better finger rolls
  • full left/right home row modifier clusters for Ctrl GUI Alt Shift
  • with home row modifiers, replace the redundant center column modifier chords with layer toggles (locks) for FnKeys, Cursor, Mouse, Number and Regex (which flattens the left and right hand home block symbol clusters), along with Caps—these layers mirror their thumb switched layer counterparts with a few tweaks by virtue of the freed thumb
  • allow switching TG layers without need for toggling the currently active TG layer off
  • add a convenient left thumb Esc break out of the above TG layers (and Caps)
  • convert TG to single tap TT layers (to be more like OSM)

Finally, Planck redux!..

»»  planck done

comment ?